# coding:utf-8

"""
str.split(sep=None, maxsplit=- 1)
返回一个由字符串内单词组成的列表，使用 sep 作为分隔字符串。 如果给出了 maxsplit，则最多进行 maxsplit 次拆分（因此，列表最多会有
maxsplit+1 个元素）。 如果 maxsplit 未指定或为 -1，则不限制拆分次数（进行所有可能的拆分）。
如果给出了 sep，则连续的分隔符不会被组合在一起而是被视为分隔空字符串 (例如 '1,,2'.split(',') 将返回 ['1', '', '2'])。
sep 参数可能由多个字符组成 (例如 '1<>2<>3'.split('<>') 将返回 ['1', '2', '3'])。 使用指定的分隔符拆分空字符串将返回 ['']。
"""
a = 'abc'
print(a.split())  # ['abc']

b = 'a,b,c'
print(b.split(','))  # ['a', 'b', 'c']

c = 'a|b|c|d'
print(c.split('|', 1))  # ['a', 'b|c|d']

d = 'a|b|c|d'
print(d.split('|', 2))  # ['a', 'b', 'c|d']

"""
str.join(iterable)
返回一个由 iterable 中的字符串拼接而成的字符串。 如果 iterable 中存在任何非字符串值包括 bytes 对象则会引发 TypeError。 
调用该方法的字符串将作为元素之间的分隔。
"""
# 列表元素只能使用字符串类型
test = ['a', 'b', 'c']
test_str = '|'.join(test)
print(test_str)  # a|b|c

# 列表元素不能使用数字类型
# test2 = [1, 2, 3]
# print('|'.join(test2))  # TypeError: sequence item 0: expected str instance, int found

# 列表元素不能使用字典、元组和None类型
# test3 = [{'name': 'dewei'}, {'name': 'xiaomu'}]
# print('|'.join(test3))  # TypeError: sequence item 0: expected str instance, dict found

sort_str = 'a b d f i p q c'
sort_list = sort_str.split()
print(sort_list)  # ['a', 'b', 'd', 'f', 'i', 'p', 'q', 'c']
sort_list.sort()
print(sort_list)  # ['a', 'b', 'c', 'd', 'f', 'i', 'p', 'q']
sort_str = ' '.join(sort_list)
print(sort_str)  # a b c d f i p q

"""
sorted(iterable, /, *, key=None, reverse=False)
根据 iterable 中的项返回一个新的已排序列表。
具有两个可选参数，它们都必须指定为关键字参数。
key 指定带有单个参数的函数，用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 默认值为 None (直接比较元素)。
reverse 为一个布尔值。 如果设为 True，则每个列表元素将按反向顺序比较进行排序。
"""
sort_str_new = 'abdfipqc'
print(sort_str_new)  # abdfipqc
res = sorted(sort_str_new)
print(''.join(res))  # abcdfipq
